//
//  CZTabBar.swift
//  微博
//
//  Created by 霸气的刘吉庆 on 16/4/16.
//  Copyright © 2016年 ios. All rights reserved.
//

import UIKit

class CZTabBar: UITabBar {

    //点击按钮需要添加的闭包的属性
    
    //注意这个闭包函数使我们点击按钮时执行的代码
    var addButtonClosure: (()->())?
    
    
    
    //设置tabbar
    
    //添加一个button
    
    
    
    //构造方法
    
    override init(frame: CGRect) {
        
        super.init(frame: frame)
        
        addSubview(addTabBarButton)
        
        
        
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //开始重新布局子空间
    
    override func layoutSubviews() {
        
        //首先调用父类的布局方法
        
        super.layoutSubviews()
        
        //下面在写自己的布局
        
        
        //注意这里不能直接设置当前空间的属性为 self.center
        addTabBarButton.center = CGPoint(x: self.frame.width*0.5, y: self.frame.height*0.5)
        
        //遍历设置其他空间的信息
        
        //遍历控件,看取到的是否是UIBarButton类型的数据
        
        //首先确定每一个按钮的宽度
        
        let width = self.frame.width/5
        
        var index = 0
        
        
        for value in subviews {
            
            //注意这里要进行强解包,因为NSClass返回的是一个可选的类型
    if value .isKindOfClass(NSClassFromString("UITabBarButton")!) {
        
        //如果是tabButton重新布局
        
        //注意这里的frame.width 是只读的,要想赋值必须全部点出属性
        
        value.frame.size.width = width
        
        value.frame.origin.x = CGFloat(index) * width
        
        index++
        
        //判断是否等于2
        
        if index == 2 {
            
            
            index++
            
        }
        
        
        
        
        
        
        
                
            }
            
            
            
            
        }
        
        
        
        
        
        
    }
    
    
//    didClickAddButton()
    
    
    //按钮的点击事件
    
    func didClickAddButton(){
        
        //调用闭包函数,主要是这个view处理不了时间,事件我们都需要到控制器上去执行
        
        addButtonClosure?()
        
        
        
        
        
    }
    
    
    
    //懒加载空间
    
    private lazy var addTabBarButton: UIButton = {
        
//        didClickAddButton()
        
        
//        self.didClickAddButton()
        
        let button = UIButton()
        
        //添加点击事件
        
        button.addTarget(self, action: "didClickAddButton", forControlEvents: .TouchUpInside)
        
        
        
        //设置button
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        
        
        //让他进行自适应
        
        button.sizeToFit()
        
        
        
        
        
        
        
        
        
        return button
        
        //下面别忘记需要执行()
    }()
    
    
    
    

}
